﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using radnaVerzija.Interfejsi;
using MySql.Data.MySqlClient;

namespace radnaVerzija
{
    public partial class DAL
    {
    public  class TerenDAO : IDaoCrud<Teren>
    {
            protected MySqlCommand komanda;

            public long create(Teren entitet)
            {
                try
                {
                    komanda = new MySqlCommand("insert into Tereni values (@tipTerena,@nadzornik,@rezervacija,@daLiJeIspravan);", konekcija);     
                    komanda.Parameters.AddWithValue("@tipTerena", entitet.TipTerena);
                    komanda.Parameters.AddWithValue("@nadzornik", entitet.Nadzornik);
                    komanda.Parameters.AddWithValue("@rezervacija", entitet.Rezervacija);
                    komanda.Parameters.AddWithValue("@daLiJeIspravan", entitet.DaLiJeIspravan);
                    komanda.ExecuteNonQuery();
                    return komanda.LastInsertedId;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public Teren read(Teren entitet)
            {
                try
                {
                    komanda = new MySqlCommand("select * from Tereni where idTeren = @id;", konekcija);
                      komanda.Parameters.AddWithValue("@id", entitet.IdTerena);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    Teren teren = null;
                    citac.Read();
                 
                        teren = new Teren(citac.GetInt32("tipTerena"), 
                            citac.GetBoolean("daLiJeIspravan"),
                            citac.GetInt32("nadzornik"),
                            citac.GetInt32("rezervacija"));

                        citac.Close();
                    return teren;


            
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public Teren update(Teren entitet)
            {
                try
                {
                    komanda = new MySqlCommand("update Tereni set tipTerena = @tipTerena, DaLiJeIspravan = @DaLiJeIspravan, nadzornik = @nadzornik, rezervacija = @rezervacija where idTeren=@id;",konekcija);       
                    komanda.Parameters.AddWithValue("@tipTerena", entitet.TipTerena);
                    komanda.Parameters.AddWithValue("@nadzornik", entitet.Nadzornik);
                    komanda.Parameters.AddWithValue("@rezervacija", entitet.Rezervacija);
                    komanda.Parameters.AddWithValue("@daLiJeIspravan", entitet.DaLiJeIspravan);
                    komanda.Parameters.AddWithValue("@id", entitet.IdTerena);
                   
                    komanda.ExecuteNonQuery();
                    return read(entitet);


             
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public void delete(Teren entitet)
            {
                try
                {
                    komanda = new MySqlCommand("delete from Tereni where teren_ID =@id;", konekcija);
                    komanda.Parameters.AddWithValue("@id", entitet.IdTerena);
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
    }
}
